package com.songlanyun.modules.coupon.service;

import com.songlanyun.common.drive.IBaseService;
import com.songlanyun.common.utils.PageUtils;
import com.songlanyun.modules.coupon.entity.CouponEntity;
import com.songlanyun.modules.coupon.entity.CouponReceiveRecordEntity;
import com.songlanyun.modules.coupon.model.vo.CouponEntityVo;
import com.songlanyun.modules.coupon.model.vo.CouponReceiveRecordVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 优惠券领取记录与使用情况
 *
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2022-07-05 15:20:02
 */
public interface CouponReceiveRecordService extends IBaseService<Long,CouponReceiveRecordEntity> {

    @Override
    PageUtils queryPage(Map<String, Object> params);

    void receive(Long userId, Long couponId);

    void give(Long userId, String couponCode,boolean tw) ;

    List<CouponReceiveRecordVo> loadMyShopCoupons(Long userId, Long shopId);

    CouponReceiveRecordEntity loadMyCoupon(Long userId, Long couponId);

    List<CouponReceiveRecordVo> loadMyPlatCoupons(Long userId);

    void useCoupon(Long userId, Long platformCouponId, Long id, String orderCode, BigDecimal couponResultValue);

    void newPersonCoupon(Long userId);

    CouponReceiveRecordVo loadByCouponSlimEntity(Long myCouponId, Boolean tw);
}

